---
title: 'HighLevel'
sidebarTitle: 'HighLevel'
description: 'Access the HighLevel API in 2 minutes 💨'
---

<Tabs>
  <Tab title="🚀 Quickstart">
    <Steps>
      <Step title="Create an integration">
        In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> _Configure New Integration_ -> _HighLevel_.
      </Step>
      <Step title="Authorize HighLevel">
        Go to [Connections](https://app.nango.dev/dev/connections) -> _Add Test Connection_ -> _Authorize_, then log in to HighLevel. Later, you'll let your users do the same directly from your app.
      </Step>
      <Step title="Call the HighLevel API">
        Let's make your first request to the HighLevel API (fetch a list of contacts). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):
        <Tabs>
            <Tab title="cURL">

                ```bash
                curl -X POST "https://api.nango.dev/proxy/contacts/search" \
                  -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
                  -H "Provider-Config-Key: <INTEGRATION-ID>" \
                  -H "Connection-Id: <CONNECTION-ID>" \
                  -H "Version: 2021-07-28" \
                  -H "Content-Type: application/json" \
                ```
            </Tab>

            <Tab title="Node">

            Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

            ```typescript
            import { Nango } from '@nangohq/node';

            const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

            const res = await nango.post({
                endpoint: '/contacts/search',
                providerConfigKey: '<INTEGRATION-ID>',
                connectionId: '<CONNECTION-ID>',
                headers: {
                  Version: '2021-07-28'
                }
              });
            console.log(res.data);
            ```
            </Tab>

        </Tabs>

        Or fetch credentials dynamically via the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

      </Step>
    </Steps>

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.

    <Tip>
    Next step: [Embed the auth flow](/getting-started/quickstart/embed-in-your-app) in your app to let your users connect their HighLevel accounts.
    </Tip>
  </Tab>
  <Tab title="🧑‍💻 OAuth app setup">
    <Steps>
      <Step title="Create a HighLevel developer account">
        If you don't already have one, sign up for a developer account at [HighLevel Marketplace](https://marketplace.gohighlevel.com/).
      </Step>
      <Step title="Register an OAuth app">
        1. Go to [HighLevel Marketplace](https://marketplace.gohighlevel.com/)
        2. Navigate to [My Apps](https://marketplace.gohighlevel.com/apps) and click **Create App**
        3. Fill in all the required information. For **Listing Type** select **Standard (non-white-label)**
        4. Click **Create App** to create your app
        5. Complete all mandatory sections: **Basic Info**, **App Profile Details**, **Support Details**, and **Pricing Details**
      </Step>
      <Step title="Configure OAuth settings">
        1. In your app settings, navigate to **Advanced Settings** then **Auth** section
        2. Configure the following:
           - **Scopes**: Select the required scopes for your integration (see [HighLevel scopes documentation](https://highlevel.stoplight.io/docs/integrations/vcctp9t1w8hja-scopes))
           - **Redirect URI**: Set this to `https://api.nango.dev/oauth/callback` 
        3. Generate Client Keys:
           - Click **Add** in the **Client Key** section
           - Enter a name for your key and click **Add**
           - A **Client ID** and **Client Secret** will be generated, save these credentials as you'll need them when configuring Nango
        4. Click **Save** to complete your OAuth configuration
      </Step>
      <Step title="Next">
        Follow the [_Quickstart_](/getting-started/quickstart).
      </Step>
    </Steps>
  </Tab>
  <Tab title="🔗 Useful links">
    | Topic | Links | 
    | - | - | 
    | General | [HighLevel Website](https://www.gohighlevel.com/) |
    | | [HighLevel Marketplace](https://marketplace.gohighlevel.com/) |
    | | [HighLevel Support](https://help.gohighlevel.com/) |
    | Developer | [How to register an Application](https://highlevel.stoplight.io/docs/integrations/a04191c0fabf9-authorization#1-register-an-oauth-app) |
    | | [OAuth related docs](https://highlevel.stoplight.io/docs/integrations/a04191c0fabf9-authorization) |
    | | [List of OAuth scopes](https://highlevel.stoplight.io/docs/integrations/vcctp9t1w8hja-scopes) |
    | | [HighLevel REST API docs](https://highlevel.stoplight.io/docs/integrations/0443d7d1a4bd0-overview) |
    | | [Rate limits documentation](https://highlevel.stoplight.io/docs/integrations/a04191c0fabf9-authorization#what-are-current-rate-limits-for-api-20) |
    | | [Developer marketplace guide](https://help.gohighlevel.com/support/solutions/articles/155000000136-how-to-get-started-with-the-developer-s-marketplace) |

    <Note>Contribute useful links by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/highlevel.mdx)</Note>
  </Tab>
  <Tab title="🚨 API gotchas">
    -   HighLevel offers two different authorization flows for their users. The `standard` option allows for general OAuth2 authentication, while the `highlevel-white-label` option allows users to generate access tokens, enabling them to white-label the platform. This means users can rebrand the platform with their own branding elements and customize it to match their brand identity
    -   HighLevel enforces rate limits for its public V2 APIs. For more details check [HighLevel rate limits](https://highlevel.stoplight.io/docs/integrations/a04191c0fabf9-authorization#what-are-current-rate-limits-for-api-20).
    -   When creating an app, there are 2 types of access: Location Level Access (also known as Sub-Account) and Agency Level Access (also known as Company). These access levels provide comprehensive control over location data at either the individual location or agency-wide level.
    -   The App Type determines the accessibility and visibility of your application. A public app is available for anyone to use and access, while a private app is restricted to a specific group or individuals and is not publicly listed in the marketplace. For more details check [profile information](https://help.gohighlevel.com/support/solutions/articles/155000000136-how-to-get-started-with-the-developer-s-marketplace#How-to-use-the-oAuth-V2-to-configure-Webhooks-for-your-apps?)
    
    <Note>Contribute API gotchas by [editing this page](https://github.com/nangohq/nango/tree/master/docs/integrations/all/highlevel.mdx)</Note>
  </Tab>
</Tabs>

<Info>
    Questions? Join us in the [Slack community](https://nango.dev/slack).
</Info>
